# {{ ansible_managed }}

# Linux bridge agent physical interface mappings
[linux_bridge]

{% if neutron_provider_networks.network_mappings is defined and ((neutron_provider_networks.network_mappings | length) > 0) %}
physical_interface_mappings = {{ neutron_provider_networks.network_mappings }}
{% endif %}

# Linux bridge agent VXLAN networks
[vxlan]

{% if neutron_vxlan_enabled | bool %}
enable_vxlan = True
vxlan_group = {{ neutron_vxlan_group }}
# VXLAN local tunnel endpoint
local_ip = {{ neutron_local_ip }}
l2_population = {{ neutron_plugins[neutron_plugin_type].l2_population }}
ttl = {{ neutron_vxlan_ttl }}

{% else %}

# Disable VXLAN for deployments with only flat or VLAN networks
enable_vxlan = False
{% endif %}

# Agent
[agent]
{# If we're deploying this template to a hypervisor, we should make a list  #}
{# of extensions that need to be enabled in the agent.                      #}
{% if 'nova_compute' in group_names                                         %}
{%   set _extensions = []                                                   %}
{%   if 'ml2.sriov' in neutron_plugin_types                                 %}
{%     set _ = _extensions.append('fdb')                                    %}
{%   endif                                                                  %}
{%   if 'qos' in neutron_plugin_base                                        %}
{%     set _ = _extensions.append('qos')                                    %}
{%   endif                                                                  %}
extensions = {{ _extensions | join(',') }}

{% if 'ml2.sriov' in neutron_plugin_types %}
# If an interface is shared between sriov ports and normal ports, it must be defined here
# to allow traffic between the two ports on the same host
[FDB]
shared_physical_device_mappings = {{ neutron_provider_networks.network_sriov_mappings }}
{% endif %}

{% endif %}

# Security groups
[securitygroup]
firewall_driver = {{ neutron_plugins[neutron_plugin_type].driver_firewall }}
enable_security_group = True
